package com.gqj.elec.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gqj.common.annotation.Excel;
import com.gqj.common.core.domain.BaseEntity;
import com.gqj.elec.domain.ElecMaterialOutdetail;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 物资出库对象 elec_material_outinfo
 *
 * @author lxq
 * @date 2023-12-17
 */
public class ElecMaterialOutinfoVo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long outId;

    /**
     * 出库单号
     */
    @Excel(name = "领用单号")
    private String batchNumber;

    /**
     * 出库主题
     */
    @Excel(name = "领用主题")
    private String outTheme;

    /**
     * 计划出库日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划领用日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planOutDate;

    /**
     * 出库人员ID
     */
    @Excel(name = "领用人员ID")
    private Long outUserId;

    /**
     * 出库人
     */
    @Excel(name = "领用人")
    private String outUserName;

    /**
     * 物资类别
     */
    private String materialCategory;

    /**
     * 出库状态
     */
    @Excel(name = "领用状态")
    private String outStatus;

    /**
     * 入库类别 1-后台创建 2-前端创建 3-备件归还入库
     */
    @Excel(name = "入库类别")
    private String outType;

    public String getOutType() {
        return outType;
    }

    public void setOutType(String outType) {
        this.outType = outType;
    }

    /**
     * 子列表
     */
    private List<ElecMaterialOutdetail> ElecMaterialOutdetailList;

    public List<ElecMaterialOutdetail> getElecMaterialOutdetailList() {
        return ElecMaterialOutdetailList;
    }

    public void setElecMaterialOutdetailList(List<ElecMaterialOutdetail> elecMaterialOutdetailList) {
        ElecMaterialOutdetailList = elecMaterialOutdetailList;
    }

    public void setOutId(Long outId) {
        this.outId = outId;
    }

    public Long getOutId() {
        return outId;
    }

    public void setBatchNumber(String batchNumber) {
        this.batchNumber = batchNumber;
    }

    public String getBatchNumber() {
        return batchNumber;
    }

    public void setOutTheme(String outTheme) {
        this.outTheme = outTheme;
    }

    public String getOutTheme() {
        return outTheme;
    }

    public void setPlanOutDate(Date planOutDate) {
        this.planOutDate = planOutDate;
    }

    public Date getPlanOutDate() {
        return planOutDate;
    }

    public void setOutUserId(Long outUserId) {
        this.outUserId = outUserId;
    }

    public Long getOutUserId() {
        return outUserId;
    }

    public void setMaterialCategory(String materialCategory) {
        this.materialCategory = materialCategory;
    }

    public String getMaterialCategory() {
        return materialCategory;
    }

    public void setOutStatus(String outStatus) {
        this.outStatus = outStatus;
    }

    public String getOutStatus() {
        return outStatus;
    }

    public String getOutUserName() {
        return outUserName;
    }

    public void setOutUserName(String outUserName) {
        this.outUserName = outUserName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("outId", getOutId())
                .append("batchNumber", getBatchNumber())
                .append("outTheme", getOutTheme())
                .append("planOutDate", getPlanOutDate())
                .append("outUserId", getOutUserId())
                .append("materialCategory", getMaterialCategory())
                .append("outStatus", getOutStatus())
                .append("remark", getRemark())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
